// hdu5694
// 题意：s(1)=B，s(2)=BBD, s(3)=BBDBBDD
//       s(n)=s(n-1)+B+reverse(flip(s(n-1)))
//       问给定l, r(<=10^18)，输出[l, r]内对于s(2^1000)有多少B。
//
// 题解：其实只要顺着推到正好是r的长度，然后对于剩下部分再递归算一下就行。
/*
B
BBD
BBDBBDD
BBDBBDDBBBDDBDD
BBDBBDDBBBDDBDDBBBDBBDDDBBDDBDD
*/
//
// run: $exec < input
// opt: 0
// flag: -g
#include <iostream>

long long calc(long long r)
{
	if (!r) return 0;
	long long ret = 1, len = 1;
	for (int i = 2; ; i++) {
		if (len * 2 + 1 <= r) {
			ret = len + 1;
			len = len * 2 + 1;
			continue;
		}
		if (r == len) return ret;
		if (r == len + 1) return ret + 1;
		long long t = r - len - 1;
		long long tmp = calc(len - t);
		tmp = ret - tmp;
		return t - tmp + ret + 1;
	}
	return ret;
}

int main()
{
	std::ios::sync_with_stdio(false);
	int T; std::cin >> T;
	for (long long l, r; T--; ) {
		std::cin >> l >> r;
		std::cout << calc(r) - calc(l - 1) << '\n';
	}
}

